/*
 * @Description:故障处理
 * @Author: 刘相卿
 * @Company: 山东方亚信息技术有限公司
 * @Date: 2020-09-30 09:16:54
 * @LastEditTime: 2020-09-30 10:31:53
 * @LastEditors: 刘相卿
 */

const Mock = require('mockjs')

let analysis = (data) => {
  return Mock.mock({
    data: {
      startTime: '2020-01-01 05:00:00',
      monthTotal: 4, // 近1月故障统计
      equipmentFailureTotal: 1, // 设备故障
      powerAnomalyTotal: 2, // 电源异常
      networkFailureTotal: 0, // 网络故障
      humanFailureTotal: 1, // 人为故障
    },
  })
}

let getList = (data) => {
  return Mock.mock({
    'data|4': [
      {
        'id|1': /[a-z][A-Z][0-9]/,
        'faultStatus|1': [0, 1], // 故障状态
        faultTime: '今天10:00:00', // 发生、处理时间
        deviceType: 1, // 故障设备类型
        faultDevice: '美莲广场1楼大厅电气火灾设备', // 设备名称
        deviceNo: '192019375', // 设备编号
        faultType: 1, // 故障类型
        faultReason: '剩余电流过低达到30mA', // 故障成因
      },
    ],
  })
}

let getDetail = (data) => {
  return Mock.mock({
    // 故障信息概览
    data: {
      info: {
        deviceId: 1, // 设备ID
        faultType: 1, // 故障类型
        faultDevice: '美莲广场1号楼大厅烟感', // 报警设备名称
        deviceNo: 1198076, // 设备编号
        merchantsName: '山东方亚信息科技有限公司', // 归属商户
        faultStatus: 1, // 故障状态
        faultTime: '今天10:00:00', // 发生、处理时间
        faultReason: '剩余电流过低达到30mA', // 故障成因
        longitude: '', // 经度
        latitude: '', // 纬度
        mobile: '10086', // 联系电话
      },
      // 故障信息处理（流程）信息
      handleList: [
        {
          id: 's7',
          // 流程步骤
          steps: 'end',
          // 操作时间
          handleTime: '今天 09:01:00',
          // 操作留痕
          msg:
            '系统发送恢复短信至一级责任人：张三（18653109876）二级责任人：赵六（13053109876）',
          safeStatus: '已恢复正常',
        },
        {
          id: 's6',
          // 流程步骤
          steps: 'person',
          // 操作时间
          handleTime: '今天 09:00:50',
          // 操作留痕
          msg:
            '二级责任人：赵六（13053109876）已到事发地点处理，并回传信息， 确认此次故障类型为： 真实火警',
          handledMode: ' 拨打119解决', // 处理方式
          remark: '烟头未熄灭引起', // 备注说明
          mediaList: ['', ''],
        },
        {
          id: 's5',
          // 流程步骤
          steps: 'phone',
          // 操作时间
          handleTime: '今天 09:00:40',
          // 操作留痕
          msg: '系统拨打故障电话至二级责任人：赵六（13053109876）',
          isCall: true, // 是否拨打电话
          // 电话接听状态
          callStatus: '电话已接听',
        },
        {
          id: 's4',
          // 流程步骤
          steps: 'sms',
          // 操作时间
          handleTime: '今天 09:00:30',
          // 操作留痕
          msg: '系统发送故障短信至二级责任人：赵六（13053109876）',
        },
        {
          id: 's3',
          // 流程步骤
          steps: 'phone',
          // 操作时间
          handleTime: '今天 09:00:20',
          // 操作留痕
          msg: '系统拨打故障电话至一级责任人：张三（18653109876）',
          isCall: true, // 是否拨打电话
          // 电话接听状态
          callStatus: '电话未接听',
        },
        {
          id: 's2',
          // 流程步骤
          steps: 'sms',
          // 操作时间
          handleTime: '今天 09:00:10',
          // 操作留痕
          msg: '系统发送故障短信至一级责任人：张三（18653109876）',
        },
        {
          id: 's1',
          // 流程步骤
          steps: 'start',
          // 操作时间
          handleTime: '今天 09:00:00',
          // 操作留痕
          msg: '系统上报故障事件故障成因： 烟雾(CO， CO2) 浓度达到0 .1 % ',
        },
      ],
    },
  })
}

let getOverview = (data) => {
  console.log(data)
  return Mock.mock({
    data: {
      faultTotal: 1, // 故障中
      handledTotal: 0, // 已处理
    },
  })
}

module.exports = {
  // 故障处理概览
  [`GET /faultHandling/overview`](ctx) {
    const { data } = getOverview(ctx.request.body)
    ctx.body = {
      code: 200,
      msg: '操作成功',
      data: data,
    }
  },
  //故障处理列表
  [`GET /faultHandling/getList`](ctx) {
    const { data } = getList(ctx.request.body)
    ctx.body = {
      code: 200,
      msg: '操作成功',
      data: {
        list: data,
        total: data.length,
        pageSize: 10,
        pageNo: 1,
      },
    }
  },
  //故障处理详情页面
  [`GET /faultHandling/detail`](ctx) {
    const { data } = getDetail(ctx.request.body)
    ctx.body = {
      code: 200,
      msg: '操作成功',
      data: data,
    }
  },
  //故障处理处理信息提交
  [`POST /faultHandling/processInfo`](ctx) {
    ctx.body = {
      code: 200,
      msg: '操作成功',
      data: {},
    }
  },
  //故障分析
  [`GET /faultHandling/analysis`](ctx) {
    const { data } = analysis(ctx.request.body)
    ctx.body = {
      code: 200,
      msg: '操作成功',
      data: data,
    }
  },
}
